﻿using Dexter.Dependency;
using Dexter.Dependency.Installation;
using Dexter.Web.Core;
using Dexter.Web.Syndication.Concretes;
using Dexter.Web.Syndication.Contracts;
using Dexter.Web.Utils;

namespace Dexter.Web.Installer {
	public class ServiceInstaller : ILayerInstaller{
		/// <summary>
		/// 	Installs all the component needed by the assembly.
		/// </summary>
		/// <param name = "container">The container.</param>
		public void ServiceRegistration ( IDexterContainerRegister container ) {
			container.Register<IWebUtils, WebUtils> ( "WebUtils", LifeCycle.Singleton );
			container.Register<ITraceUtils, TraceUtils> ( "TraceUtils", LifeCycle.Singleton );
			container.Register<IRssService, RssService> ( "RssService", LifeCycle.Singleton );
			container.Register<IHostEnvironment, HostEnvironment> ( "HostEnvironment", LifeCycle.Singleton );
		}

		/// <summary>
		/// 	Setups the service.
		/// </summary>
		/// <param name = "container">The container.</param>
		public void ServiceRegistrationComplete ( IDexterContainerResolver container ) {
			
		}

		/// <summary>
		/// 	Setups the service.
		/// </summary>
		/// <param name = "container">The container.</param>
		public void ApplicationStarted ( IDexterContainerResolver container ) {
			
		}
	}
}
